export default {
	// 为当前模块开启命名空间
	namespaced: true,

	state: () => ({
		// 收货地址
		address: JSON.parse(uni.getStorageSync('address') || '{}'),

		// 登录成功之后的 token 字符串
		token: uni.getStorageSync('token') || '',
		// 用户的基本信息
		userinfo: JSON.parse(uni.getStorageSync('userinfo') || '{}'),
		// 返回页面的信息对象，主要包含 { openType, from } 两个属性，其中 openType 表示以哪种方式导航回之前的页面；from 表示之前页面的 url 地址；
		redirectInfo: null
	}),
	mutations: {
		// 更新收货地址
		updateAddress(state, addr) {
			state.address = addr
			this.commit('user/saveAddress')
		},
		saveAddress(state) {
			uni.setStorageSync('address', JSON.stringify(state.address))
		},
		// 更新用户信息
		updateUserInfo(state, uinfo) {
			state.userinfo = uinfo
			this.commit('user/saveUserInfo')
		},
		saveUserInfo(state) {
			uni.setStorageSync('userinfo', JSON.stringify(state.userinfo))
		},
		// 更新token
		updateToken(state, tk) {
			state.token = tk
			this.commit('user/saveToken')
		},
		saveToken(state) {
			uni.setStorageSync('token', state.token)
		},
		// 更新重定向的信息对象
		updateRedirectInfo(state, info) {
			state.redirectInfo = info
		}

	},
	actions: {},
	getters: {
		// 收货详细地址的计算属性
		addStr(state) {
			if (!state.address.provinceName) return ''
			// 拼接 省，市，区，详细地址 的字符串并返回给用户
			return state.address.provinceName + state.address.cityName + state.address.countyName + state.address
				.detailInfo
		}
	}
}
